﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Inspired.Euler.Tests
{
    /// <summary>
    /// Tests for problems from 130 to 139
    /// </summary>
    [TestClass]
    public class Problems130To139
    {
        [TestMethod]
        [Description("Finding composite values, <i>n</i>, for which <i>n</i>&minus;1 is divisible by the length of the smallest repunits that divide it.")]
        public void Problem130()
        {
            Assert.AreEqual(-1, Euler.Problem130.Solve());
        }

        [TestMethod]
        [Description("Determining primes, <i>p</i>, for which <i>n</i><sup>3</sup> + <i>n</i><sup>2</sup><i>p</i> is a perfect cube.")]
        public void Problem131()
        {
            Assert.AreEqual(-1, Euler.Problem131.Solve());
        }

        [TestMethod]
        [Description("Determining the first forty prime factors of a very large repunit.")]
        public void Problem132()
        {
            Assert.AreEqual(-1, Euler.Problem132.Solve());
        }

        [TestMethod]
        [Description("Investigating which primes will never divide a repunit containing 10<sup><var>n</var></sup> digits.")]
        public void Problem133()
        {
            Assert.AreEqual(-1, Euler.Problem133.Solve());
        }

        [TestMethod]
        [Description("Finding the smallest positive integer related to any pair of consecutive primes.")]
        public void Problem134()
        {
            Assert.AreEqual(-1, Euler.Problem134.Solve());
        }

        [TestMethod]
        [Description("Determining the number of solutions of the equation <i>x</i><sup>2</sup> &minus; <i>y</i><sup>2</sup> &minus; <i>z</i><sup>2</sup> = <i>n</i>.")]
        public void Problem135()
        {
            Assert.AreEqual(-1, Euler.Problem135.Solve());
        }

        [TestMethod]
        [Description("Discover when the equation <i>x</i><sup>2</sup> &minus; <i>y</i><sup>2</sup> &minus; <i>z</i><sup>2</sup> = <i>n</i> has a unique solution.")]
        public void Problem136()
        {
            Assert.AreEqual(-1, Euler.Problem136.Solve());
        }

        [TestMethod]
        [Description("Determining the value of infinite polynomial series for which the coefficients are Fibonacci numbers.")]
        public void Problem137()
        {
            Assert.AreEqual(-1, Euler.Problem137.Solve());
        }

        [TestMethod]
        [Description("Investigating isosceles triangle for which the height and base length differ by one.")]
        public void Problem138()
        {
            Assert.AreEqual(-1, Euler.Problem138.Solve());
        }

        [TestMethod]
        [Description("Finding Pythagorean triangles which allow the square on the hypotenuse square to be tiled.")]
        public void Problem139()
        {
            Assert.AreEqual(-1, Euler.Problem139.Solve());
        }
    }
}
